<template><div><h2 id="自定义应用模板" tabindex="-1"><a class="header-anchor" href="#自定义应用模板"><span>自定义应用模板</span></a></h2>
<p>Yii 中文文档 /</p>
<h2 id="自定义应用模板-1" tabindex="-1"><a class="header-anchor" href="#自定义应用模板-1"><span>自定义应用模板</span></a></h2>
<h2 id="添加额外的应用目录" tabindex="-1"><a class="header-anchor" href="#添加额外的应用目录"><span>添加额外的应用目录</span></a></h2>
<p>虽然，我们的高级应用程序模板提供了常见的前台和后台应用，但是，有时在复杂的项目中，它是不够的。例如，您可能需要额外的应用程序，例如博客。使用如下方式创建：</p>
<ol>
<li>
<p>复制 <code v-pre>frontend</code> 至 <code v-pre>blog</code>, <code v-pre>environments/dev/frontend</code> 至 <code v-pre>environments/dev/blog</code> 以及 <code v-pre>environments/prod/frontend</code><br>
至 <code v-pre>environments/prod/blog</code>.</p>
</li>
<li>
<p>调整命名空间和路径以 <code v-pre>blog</code> 开头（替换 <code v-pre>frontend</code>）.</p>
</li>
<li>
<p>在 <code v-pre>common\config\bootstrap.php</code> 中添加 <code v-pre>Yii::setAlias('blog', dirname(dirname(__DIR__)) . '/blog');</code>.</p>
</li>
</ol>
<h2 id="从零构建自定义模板" tabindex="-1"><a class="header-anchor" href="#从零构建自定义模板"><span>从零构建自定义模板</span></a></h2>
<p>虽然 <a href="https://github.com/yiisoft/yii2-app-basic" target="_blank" rel="noopener noreferrer">basic</a> 和 <a href="https://github.com/yiisoft/yii2-app-advanced" target="_blank" rel="noopener noreferrer">advanced</a> 项目模板能够满足你的大部分需求，但是，<br>
你仍有可能需要创建你自己的项目模板来开始项目。</p>
<p>Yii 的项目模板是一个包含 <code v-pre>composer.json</code> 文件的仓库，并被注册为一个 Composer package。任何一个仓库都可以被标识为一个 Composer package，只要让其可以通过 <code v-pre>create-project</code> Composer 命令安装。</p>
<p>由于完全从新创建一个你自己的模板工作量有点大，最好的方式是以一个内建模板为基础。这里，我们使用基础应用模板。</p>
<h3 id="克隆基础模板" tabindex="-1"><a class="header-anchor" href="#克隆基础模板"><span>克隆基础模板</span></a></h3>
<p>第一步是从 Git 仓库克隆 Yii 的基础模板：</p>
<div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh" data-title="sh"><pre v-pre class="language-bash"><code><span class="line"><span class="token function">git</span> clone git@github.com:yiisoft/yii2-app-basic.git</span>
<span class="line"></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div></div></div><p>等待仓库下载到你的电脑。因为为调整到你自己的模板所产生的修改不会被 push 回，<br>
你可以删除下载下来的 <code v-pre>.git</code> 目录及其内容。</p>
<h3 id="修改文件" tabindex="-1"><a class="header-anchor" href="#修改文件"><span>修改文件</span></a></h3>
<p>接下来，你需要修改 <code v-pre>composer.json</code> 以配置你自己的模板。修改 <code v-pre>name</code>, <code v-pre>description</code>, <code v-pre>keywords</code>, <code v-pre>homepage</code>, <code v-pre>license</code>, 和 <code v-pre>support</code> 的值来描述你自己的模板。<br>
同样，调整 <code v-pre>require</code>, <code v-pre>require-dev</code>, <code v-pre>suggest</code><br>
和其他的参数来匹配你模板的环境需求。</p>
<blockquote>
<p>Note: 在 <code v-pre>composer.json</code> 文件中，使用 <code v-pre>extra</code> 下的 <code v-pre>writeable</code> 参数来指定使用模板创建的应用程序后<br>
需要设置文件权限的文件列表。</p>
</blockquote>
<p>接下来，真正的修改你的应用程序默认的目录结构和内容。<br>
最后，更新 README 文件以符合你的模板。</p>
<h3 id="发布一个-package" tabindex="-1"><a class="header-anchor" href="#发布一个-package"><span>发布一个 Package</span></a></h3>
<p>模板调整好后，通过其创建一个 Git 仓库并提交你的代码。<br>
如果你希望将你的应用程序模板开源，<a href="http://github.com/" target="_blank" rel="noopener noreferrer">Github</a> 将是最好的托管服务。<br>
如果你不喜欢其他的人来跟你一起协作，你可以使用任意的 Git 仓库服务。</p>
<p>接下来，你需要为 Composer 注册你的 package。对于公有的模板，你可以将 package 注册到 <a href="https://packagist.org/" target="_blank" rel="noopener noreferrer">Packagist</a>。对于私有的模板，<br>
注册 package 将会麻烦一点。<br>
参考 <a href="https://getcomposer.org/doc/05-repositories.md#hosting-your-own" target="_blank" rel="noopener noreferrer">Composer documentation</a> 获取更多的指示。</p>
<h3 id="使用模板" tabindex="-1"><a class="header-anchor" href="#使用模板"><span>使用模板</span></a></h3>
<p>以上就是为了创建一个新的 Yii 项目模板你需要做的事情。现在，你可以使用你自己的模板创建项目了：</p>
<div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh" data-title="sh"><pre v-pre class="language-bash"><code><span class="line"><span class="token function">composer</span> create-project --prefer-dist <span class="token parameter variable">--stability</span><span class="token operator">=</span>dev mysoft/yii2-app-coolone new-project</span>
<span class="line"></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div></div></div><blockquote>
<p>💖喜欢本文档的，欢迎点赞、收藏、留言或转发，谢谢支持！<br>
作者邮箱：zhuzixian520@126.com，github地址：<a href="https://github.com/zhuzixian520" target="_blank" rel="noopener noreferrer">github.com/zhuzixian520</a></p>
</blockquote>
</div></template>


